package com.middlegroup.subjectpay.service;

import com.middlegroup.common.model.SubjectpayQueryRequest;
import com.middlegroup.common.model.TransResult;
import com.middlegroup.subjectpay.dto.BindCardDto;
import com.middlegroup.subjectpay.dto.TransRequest;
import com.middlegroup.subjectpay.service.ucfpay.CallbackRequest;

/**
 *
 * @author pc
 * @date 2019/1/14
 */
public interface UcfpayService {


    /**先锋协议支付绑卡申请
     * @param bindCardDto
     * @return
     */
    TransResult bindcardApply(BindCardDto bindCardDto);

    /**先锋协议支付绑卡确认
     * @param bindCardDto
     * @return
     */
    TransResult bindcardConfirm(BindCardDto bindCardDto);

    /**先锋协议支付绑卡重发短信验证码
     * @param bindCardDto
     * @return
     */
    TransResult reSendSms(BindCardDto bindCardDto);

    /**先锋协议支付扣款接口
     * @param transRequest
     * @return
     */
    TransResult protocolPay(TransRequest transRequest);

    /**先锋协议支付查询接口
     * @param request
     * @return
     */
    TransResult protocolPayQuery(SubjectpayQueryRequest request);

    /**先锋协议绑卡查询接口
     * @param request
     * @return
     */
    TransResult bindcardQuery(SubjectpayQueryRequest request);

    /**先锋协议支付回调
     * @param request
     * @return
     */
    String protocolPayNotify(CallbackRequest request);





    /**先锋快捷支付申请
     * @param request
     * @return
     */
    TransResult quickPayApply(TransRequest request);

    /**先锋快捷支付确认
     * @param request
     * @return
     */
    TransResult quickPayConfirm(TransRequest request);

    /**先锋快捷支付重发短信验证码
     * @param request
     * @return
     */
    TransResult quickPayReSendSMS(TransRequest request);

    /**先锋快捷支付查询接口
     * @param request
     * @return
     */
    TransResult quickPayQuery(SubjectpayQueryRequest request);

    /**先锋快捷支付回调
     * @param request
     * @return
     */
    String quickPayNotify(CallbackRequest request);

}
